package persistent.impl;

import java.util.List;

import basic.HibBaseDAO;
import model.TScaleTitleType;
import model.VScaleTitleType;
import persistent.dao.IScaleTitleTypeDAO;

/**
 * 量表卷类管理业务接口实现类
 * @author 徐震霖
 * @since 2019-02-22
 */
public class ScaleTitleTypeImpl implements IScaleTitleTypeDAO {

	private HibBaseDAO dao = null;
	//private static final Log log = LogFactory.getLog(HibBaseDAO.class);

	public ScaleTitleTypeImpl() {
		dao = new HibBaseDAO();
	}
	
	/**
	 * 添加一个卷类信息
	 * @param type 卷类对象
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean addScaleTitleType(TScaleTitleType type) {
		if(dao.insert(type) > 0){
			return true;
		}
		return false;
	}

	/**
	 * 修改一个卷类信息
	 * @param type 卷类对象
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean updateScaleTitleType(TScaleTitleType type) {
		return dao.update(type);
	}

	/**
	 * 删除一个卷类信息 
	 * @param typeid 卷类ID
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean deleteScaleTitleType(int typeid) {
		TScaleTitleType type = 
				(TScaleTitleType) dao.findById(TScaleTitleType.class, typeid);
		return dao.delete(type);
	}

	/**
	 * 根据条件获取卷类信息列表
	 * @param strWhere 查询条件
	 * @return 成功返回List<TScaleTitleType>的卷类对象信息列表，失败返回null
	 */
	@Override
	public List<VScaleTitleType> geTScaleTitleTypes(String strWhere) {
		String hql = "from VScaleTitleType " + strWhere;
		return dao.select(hql);
	}

	/**
	 * 根据条件分页获取卷类信息列表
	 * @param strWhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页条数
	 * @return 成功返回List<TScaleTitleType>的卷类对象信息列表，失败返回null
	 */
	@Override
	public List<VScaleTitleType> getScaleTitleTypesByPage(String strWhere, int currentPage, int pageSize) {
		String hql = "from VScaleTitleType " + strWhere;
		return dao.selectByPage(hql, currentPage, pageSize);
	}

	/**
	 * 根据ID获取一个卷类信息
	 * @param typeid 卷类编号
	 * @return 成功返回TScaleTitleType的卷类信息，失败返回null
	 */
	@Override
	public TScaleTitleType getTScaleTitleType(int typeid) {
		return (TScaleTitleType) dao.findById(TScaleTitleType.class, typeid);
	}

}
